package ljl.codetop2;

public class _152_max_product {

    /**
     * 我记着是一个 max 一个 min 是吧？
     * 不是，非空，连续子数组
     *
     * todo 操他妈被难倒了
     * todo 不过改了一下改对了
     */
    static class a {
        // [2,3,-2,4]
        public int maxProduct(int[] nums) {
            int max = nums[0], min = max;
            int res = max;
            for (int i = 1; i < nums.length; i++) {
                int num = nums[i];
                int oldMax = max;
                max = Math.max(num, Math.max(min * num, max * num));
                min = Math.min(num, Math.min(min * num, oldMax * num));
                res = Math.max(max, res);
            }
            return res;
        }
    }
}
